package utils;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Locale;

import javax.swing.JOptionPane;

public class UtilFecha {

	public static Calendar obtenerFecha(String fecha)
	{
		String strFormat = "dd/MM/yyyy";
		DateFormat myDateFormat = new SimpleDateFormat(strFormat);
		Date miDate = new Date();
		Calendar miGDate=new GregorianCalendar();
		if ( isFechaValida( fecha ) )
		{
			try
			{
				miDate = myDateFormat.parse( fecha );
				miGDate.setTime( miDate );
			}
			catch (ParseException e)
			{
				e.printStackTrace();
				JOptionPane.showMessageDialog(null, "Error de fecha" ,"Formato de fecha invalido, por favor ingrese una fecha con el formato dd/MM/yyyy", JOptionPane.ERROR_MESSAGE);
			}
		}
		return miGDate;
	}
	
	private static boolean isFechaValida( String fechax )
	{
		if ( fechax == null )  
			return false;  
		  try {
		      SimpleDateFormat formatoFecha = new SimpleDateFormat("dd/MM/yyyy", Locale.getDefault());
		      if ( fechax.trim().length() != formatoFecha.toPattern().length() )
		      {
			      formatoFecha.setLenient(false);
			      formatoFecha.parse(fechax);
			      System.out.println("Formato de fecha invalido, por favor ingrese una fecha con el formato dd/MM/yyyy");
		      }
		      if ( fechax.trim().length() == formatoFecha.toPattern().length() )
		      {
			      formatoFecha.setLenient(false);
			      formatoFecha.parse(fechax);
		      }
		      
		  } catch (ParseException e) {
		      return false;
		  }
		  return true;
		}
	
	
}
